昨天算是把最後一種模式介紹完了,回去看了一下前面十天寫的東西可能文筆比較不好(?),可能有些東西可以再重新整理一下,最後四天就做一個整體的分類整理,重新認識一下使用方式(避免濫用...)
建立型模式隱藏了這些類別的實體是如何被建立和放在一起,整個系統關於這些物件所知道的,是由抽象類別所定義的介面。這樣,建立型模式在建立了什麼、誰建立它、它是怎麼被建立的,以及何時建立這些方面提供了很大的靈活性。
-- Design Pattern by GoF [大話設計模式 p.454]
下面這五種模式我們稱為建立型模式
(建造型),使用這些模式我們希望達到不自己創建物件
的效果(在程式碼中不使用new),把創建的過程封裝起來,從而達到單一實例
、提升效能
、容易擴充
···等等的好處。
保證一個類別僅有一個實體,並提供一個存取它的全域存取點。
定義一個操作,允許客戶端使用這個操作取得他的唯一實例,GetInstance()負責建立他的唯一實例。
定義一個用於建立物件的介面,子類別決定實例化哪一個類別,工廠模式使一個類別的實例化延遲到其子類別。
通常設計是從工廠方法開始,再向其他模式演化。
提供一個建立一系列或相關依賴物件的介面,而無需指定它們具體的類別。
將一個複雜物件的建構與他的表示分離,使得同樣的建構過程可以建立不同的表示。
用原形實體指定建立物件的種類,並且透過拷貝這些原型建立新的物件。
不在23種pattern中,有一點點類似Factory Method,與它不同的地方在於,只利用一個實體的工廠,建立所有相關的產品。
參考資料
-- 大話設計模式
-- Android源碼設計模式解析與實戰
-- Design Patterns in Object Oriented Programming